Content items, such as movies, television shows, music, etc., may be recommended to users. A similarity matrix that indicates the similarity between content items in the matrix can be used to make recommendations. For example, each content item may have a corresponding row and column in the matrix, and the similarity between any two content items is indicated by the value in the similarity matrix corresponding to the intersection of the two content items' respective rows and columns. If numerous content items are included in the similarity matrix, the similarity matrix can be very large. For example, if 100,000 content items are in the matrix, the similarity matrix may have dimensions of 100,000 by 100,000. A large similarity matrix may present several problems. The similarity matrix may require a significant amount of memory for storage and processing. It may also take a long time to load the similarity matrix into memory, such as when the matrix is used online to generate content recommendations for users. Conventional matrix-reduction algorithms may be used to reduce the size of a large similarity matrix. However, the accuracy of content recommendations using the resulting similarity matrix may suffer. These and other problems are addressed by the present disclosure.